import { defineStore } from 'pinia'
import { ref } from 'vue'

/**
 * 应用全局状态管理
 * 管理应用的全局状态，如网络状态、主题等
 */
export const useAppStore = defineStore('app', () => {
  // 状态
  const isOnline = ref(true)
  const currentPage = ref('')
  const appVersion = ref('1.0.0')
  const lastUpdateTime = ref(null)

  // 方法
  /**
   * 设置网络状态
   */
  const setOnlineStatus = (status) => {
    isOnline.value = status
  }

  /**
   * 设置当前页面
   */
  const setCurrentPage = (page) => {
    currentPage.value = page
  }

  /**
   * 更新应用版本
   */
  const updateVersion = (version) => {
    appVersion.value = version
  }

  /**
   * 设置最后更新时间
   */
  const setLastUpdateTime = (time) => {
    lastUpdateTime.value = time
  }

  /**
   * 初始化应用状态
   */
  const initializeApp = () => {
    // 监听网络状态变化
    if (typeof tt !== 'undefined' && tt.onNetworkStatusChange) {
      tt.onNetworkStatusChange((res) => {
        setOnlineStatus(res.isConnected)
      })
    }

    // 获取初始网络状态
    if (typeof tt !== 'undefined' && tt.getNetworkType) {
      tt.getNetworkType({
        success: (res) => {
          setOnlineStatus(res.networkType !== 'none')
        }
      })
    }
  }

  return {
    // 状态
    isOnline,
    currentPage,
    appVersion,
    lastUpdateTime,
    
    // 方法
    setOnlineStatus,
    setCurrentPage,
    updateVersion,
    setLastUpdateTime,
    initializeApp
  }
})
